링크된 문서
역링크
Apache IoTDB MCP 서버
Apache IoTDB MCP 서버
Apache IoTDB MCP 서버는 Apache IoTDB 시계열 데이터베이스와 그 관련 도구들을 위한 Model Context Protocol(MCP) 서버 구현체입니다. 이 서버를 통해 LLM(대규모 언어 모델)은На IoT 기기에서 생성된 시계열 데이터를 효율적으로 쿼리하고 분석할 수 있습니다.
주요 기능
- IoTDB 데이터베이스 연결: Apache IoTDB 시계열 데이터베이스에 연결하여 데이터 쿼리
- 시계열 데이터 쿼리: 시간 범위, 장치, 측정값 등을 기준으로 데이터 조회
- 메타데이터 관리: 저장 그룹, 장치, 측정 항목 등의 메타데이터 관리
- 통계 및 분석: 시계열 데이터에 대한 집계, 통계, 추세 분석 수행
- 시각화 지원: 시계열 데이터 시각화를 위한 도구 지원
제공 도구
Apache IoTDB MCP 서버는 다음과 같은 도구를 제공합니다:
데이터베이스 관리 도구
- connect: IoTDB 데이터베이스에 연결
- disconnect: IoTDB 데이터베이스 연결 해제
- show_version: IoTDB 서버 버전 정보 조회
- show_cluster: IoTDB 클러스터 정보 조회
메타데이터 도구
- show_storage_groups: 모든 저장 그룹 조회
- show_devices: 등록된 모든 장치 조회
- count_devices: 등록된 장치 수 계산
- show_timeseries: 등록된 시계열 조회
- count_timeseries: 등록된 시계열 수 계산
- show_measurements: 특정 장치의 측정 항목 조회
데이터 쿼리 도구
- execute_query: IoTSQL 쿼리 실행
- fetch_latest_data: 장치의 최근 데이터 조회
- fetch_time_range: 특정 시간 범위의 데이터 조회
- count_points: 시계열 데이터 포인트 수 계산
데이터 분석 도구
- calculate_statistics: 시계열 데이터의 통계 메트릭 계산 (평균, 최소, 최대, 합계 등)
- detect_anomalies: 기본적인 이상치 탐지 수행
- analyze_trends: 시계열 데이터의 추세 분석
설정 방법
Claude Desktop에 추가하기
Claude Desktop의 claude_desktop_config.json 파일에 다음 JSON 블록을 추가합니다:
{
"mcpServers": {
"apache-iotdb-mcp": {
"command": "npx",
"args": [
"-y",
"@apache/iotdb-mcp-server"
],
"env": {
"IOTDB_HOST": "localhost",
"IOTDB_PORT": "6667",
"IOTDB_USERNAME": "root",
"IOTDB_PASSWORD": "root",
"IOTDB_FETCH_SIZE": "10000",
"IOTDB_ZONE_ID": "UTC+8"
}
}
}
}
환경 변수 설정
Apache IoTDB MCP 서버는 다음과 같은 환경 변수를 통해 구성됩니다:
필수 변수
- IOTDB_HOST: IoTDB 서버 호스트 주소 (기본값: localhost)
- IOTDB_PORT: IoTDB 서버 포트 (기본값: 6667)
- IOTDB_USERNAME: IoTDB 데이터베이스 접속 사용자 이름 (기본값: root)
- IOTDB_PASSWORD: IoTDB 데이터베이스 접속 비밀번호 (기본값: root)
선택적 변수
- IOTDB_FETCH_SIZE: 쿼리 결과 가져오기 크기 (기본값: 10000)
- IOTDB_ZONE_ID: 타임존 ID (기본값: UTC+8)
- IOTDB_TIMEOUT: 쿼리 타임아웃(ms) (기본값: 0, 무제한)
- IOTDB_THRIFT_MAX_FRAME_SIZE: Thrift 최대 프레임 크기 (기본값: 67108864)
사용 사례
- 산업용 IoT 모니터링: 공장 및 제조 설비의 센서 데이터 분석
- 스마트 시티: 도시 인프라의 IoT 센서 데이터 관리 및 분석
- 환경 모니터링: 환경 센서 네트워크의 데이터 조회 및 분석
- 에너지 관리: 스마트 그리드 및 에너지 장치의 데이터 모니터링
- 자산 추적: IoT 기반 자산 추적 및 상태 모니터링
- 건강 모니터링: 웨어러블 기기의 건강 데이터 분석
시계열 데이터 모델
Apache IoTDB는 계층적 시계열 데이터 모델을 사용합니다:
- 저장 그룹(Storage Group): 데이터 저장의 기본 단위, 유사한 데이터 세트를 함께 관리
- 장치(Device): 센서 또는 IoT 장치를 나타내는 논리적 엔티티
- 측정 항목(Measurement): 장치에서 수집하는 특정 측정값(온도, 습도 등)
- 시계열(Time Series): 각 측정 항목에 대한 시간별 데이터 포인트 모음
쿼리 예시
기본 쿼리
SELECT temperature, humidity
FROM root.ln.wf01.wt01
WHERE time >= 2023-01-01T00:00:00 AND time <= 2023-01-31T23:59:59
집계 함수 사용
SELECT AVG(temperature), MAX(temperature), MIN(temperature)
FROM root.ln.wf01.wt01
WHERE time >= 2023-01-01T00:00:00 AND time <= 2023-01-31T23:59:59
GROUP BY ([2023-01-01T00:00:00, 2023-01-31T23:59:59), 1d)
다운샘플링
SELECT DOWNSAMPLE(temperature, 1h, AVG)
FROM root.ln.wf01.wt01
WHERE time >= 2023-01-01T00:00:00 AND time <= 2023-01-31T23:59:59
보안 고려사항
- IoTDB 데이터베이스 접속 정보는 기밀 정보로 취급하고 안전하게 관리해야 합니다.
- 가능한 경우 읽기 전용 권한만 가진 사용자 계정을 사용하세요.
- 대용량 데이터셋을 쿼리할 때는 적절한 시간 필터와 LIMIT 절을 사용하여 서버 부하를 관리하세요.
- 민감한 IoT 데이터에 접근할 때는 데이터 프라이버시와 규정 준수를 고려하세요.
성능 최적화 팁
- 저장 그룹은 워크로드 특성에 따라 적절하게 구성하세요.
- 시간 필터를 항상 사용하여 쿼리 범위를 제한하세요.
- 대용량 데이터셋에는 다운샘플링을 적용하여 처리 시간을 단축하세요.
- 장기 분석에는 미리 계산된 집계 값을 활용하세요.
- IoTDB 클러스터링을 사용하여 대규모 IoT 데이터를 효율적으로 관리하세요.
라이센스
이 서버는 Apache 2.0 라이센스에 따라 라이센스가 부여됩니다.